export interface recommendList {
  data: Array<recommendData & adData & videoData>;
}

export interface recommendData {
  id: string;
  type: string;
  offset: number;
  verb: string;
  created_time: number;
  updated_time: number;
  target: {
    id: number;
    type: string;
    url: string;
    title: string;
    author: {
      id: string;
      type: string;
      url: string;
      user_type: string;
      url_token: string;
      name: string;
      headline: string;
      avatar_url: string;
      is_org: boolean;
      gender: number;
      badge: undefined[];
      followers_count: number;
      is_following: boolean;
      is_followed: boolean;
    };
    created_time: number;
    updated_time: number;
    voteup_count: number;
    thanks_count: number;
    comment_count: number;
    is_copyable: boolean;
    question: {
      id: number;
      type: string;
      url: string;
      author: {
        id: string;
        type: string;
        url: string;
        user_type: string;
        url_token: string;
        name: string;
        headline: string;
        avatar_url: string;
        is_org: boolean;
        gender: number;
        badge: undefined[];
        followers_count: number;
        is_following: boolean;
        is_followed: boolean;
      };
      title: string;
      created: number;
      answer_count: number;
      follower_count: number;
      comment_count: number;
      bound_topic_ids: string;
      is_following: boolean;
      excerpt: string;
      relationship: {
        is_author: boolean;
      };
      detail: string;
      question_type: string;
    };
    thumbnail: string;
    excerpt: string;
    excerpt_new: string;
    preview_type: string;
    preview_text: string;
    reshipment_settings: string;
    content: string;
    mark_infos: [];
    relationship: {
      is_thanked: boolean;
      is_nothelp: boolean;
      voting: number;
      upvoted_followee_ids: undefined[];
    };
    is_labeled: boolean;
    visited_count: number;
    image_url: string;
  };
  brief: string;
  uninterest_reasons: {
    reason_id: number;
    reason_type: string;
    object_token: string;
    object_type: string;
    reason_text: string;
  }[];
  attached_info: string;
  actors: {
    id: string;
    type: string;
    url: string;
    avatar_url: string;
    name: string;
    excerpt: string;
    introduction: string;
  }[];
  show_actor_time: boolean;
  action_text: string;
  action_text_tpl: string;
  action_card: boolean;
}

export interface adData {
  id: string;
  type: string;
  brief: string;
  action_text: string;
  attached_info: string;
  ad?: {
    count: number;
    position: number;
    ad_verb: string;
    close_track: string;
    revert_close_track: string;
    template: string;
    load_tracks: string[];
    creatives: {
      landing_url: string;
      image: string;
      image_2x: string;
      title: string;
      description: string;
      button: string;
      action_button: boolean;
      footer: {
        value: string;
      };
      cta: {
        value: string;
      };
      brand: {
        id: number;
        name: string;
        logo: string;
      };
      app_promotion_url: string;
      native_url: string;
      deep_url: string;
      video_watch_num: number;
      za_ad_info: string;
      za_ad_info_json: string;
      external_click_url: string;
      impression_tracks: string[];
      click_tracks: string[];
      id: number;
      name: string;
      conversion_tracks: string[];
      content_type: string;
      target_token: string;
    }[];
    vote_up_count: number;
    comment_count: number;
    is_following: boolean;
    category: number;
    id: number;
    can_interact: boolean;
    user_id: number;
    ctr: number;
    display_advertising_tag: boolean;
    debug_tracks: string[];
    land_prefetch: boolean;
    native_prefetch: boolean;
    is_new_webview: boolean;
    experiment_info: string;
    download_silent: boolean;
    is_speeding: boolean;
    brand: {
      name: string;
      logo: string;
      type: string;
      action_text: string;
    };
  };
  ad_list: [];
  adjson: string;
}

export interface videoData {
  id: string;
  type: string;
  offset: number;
  verb: string;
  created_time: number;
  updated_time: number;
  target: {
    id: string;
    type: string;
    title: string;
    content: string;
    description: string;
    member_id: number;
    vote_count: number;
    comment_count: number;
    author: {
      id: string;
      type: string;
      url: string;
      user_type: string;
      url_token: string;
      name: string;
      headline: string;
      avatar_url: string;
      is_org: boolean;
      gender: number;
      badge: undefined[];
      followers_count: number;
      is_following: boolean;
      is_followed: boolean;
    };
    thumbnail_extra_info: {
      video_id: string;
      type: string;
      url: string;
      height: number;
      width: number;
      duration: number;
      playlist: {
        ld: {
          url: string;
          bitrate: number;
          duration: number;
          format: string;
          fps: number;
          height: number;
          size: number;
          width: number;
        };
        sd: {
          url: string;
          bitrate: number;
          duration: number;
          format: string;
          fps: number;
          height: number;
          size: number;
          width: number;
        };
        hd: {
          url: string;
          bitrate: number;
          duration: number;
          format: string;
          fps: number;
          height: number;
          size: number;
          width: number;
        };
      };
      show_maker_entrance: string;
    };
  };
  brief: string;
  uninterest_reasons: {
    reason_id: number;
    reason_type: string;
    object_token: string;
    object_type: string;
    reason_text: string;
  }[];
  attached_info: string;
  actors: {
    id: string;
    type: string;
    url: string;
    avatar_url: string;
    name: string;
    excerpt: string;
    introduction: string;
  }[];
  show_actor_time: boolean;
  action_text: string;
  action_text_tpl: string;
  action_card: boolean;
}
